Tudo o que você sempre quis saber sobre memória e nunca teve coragem de perguntar!
Por: Carlos E. Morimoto
FSe o processador é o principal componente de qualquer computador, a memória RAM é a sua principal ferramenta de trabalho. Desde uma calculadora “xing-ling”, até um grande mainframe, não existe nenhum tipo de computador que não utilize memória RAM. O processador utiliza a memória RAM para armazenar programas e dados que estão em uso e fica
impossibilitado de trabalhar sem ter pelo menos uma quantidade mínima dela.
A sigla “RAM” significa “Ramdom Access Memory” ou “memória de acesso aleatório”. Esse nome é mais do que adequado, pois a principal característica da memória RAM é a
capacidade de fornecer dados anteriormente gravados, com um tempo de resposta e uma velocidade de transferência centenas de vezes superior à dos dispositivos de memória de massa, como o disco rígido.
Uma outra característica marcante da memória RAM é o fato de ela ser volátil: precisa ser constantemente reenergizada para conservar os dados gravados. Como numa calculadora, que perde os dados nela armazenados quando desligada. Um exemplo típico do funcionamento da memória RAM ocorre quando estamos escrevendo uma carta no Word e, de repente, um pico de tensão faz o micro reiniciar, sem que haja tempo para salvar o trabalho. Ao recarregar o sistema, você perceberá que o que você estava fazendo se foi, perdido para sempre...
Existem claro, tipos de memória RAM não voláteis, como por exemplo, as memórias Flash, que são utilizadas nos Palm Pilots e em outros computadores de mão, celulares etc. O problema das memórias Flash é o preço, o que torna inviável sua implementação em PCs. Além disso, elas, por sua composição, são bem mais lentas que a memória RAM.
Na verdade, pode ser que no futuro algum tipo de memória não-volátil venha a substituir definitivamente a memória RAM. A IBM, por exemplo, vem desenvolvendo as memórias MRAM, que rmazenam dados na forma de sinais magnéticos. A promessa é que além de conservarem os dados gravados por anos a fio, elas sejam tão rápidas e baratas quanto as memórias atuais. Normalmente as promessas dos fabricantes são tão confiáveis quanto as promessas dos políticos em campanha, mas sempre existe uma esperança...
Antigamente, os módulos de memória RAM custavam muito caro. Há poucos anos, pagávamos mais de 40 dólares por megabyte. Em pleno início da década de 90, o preço da memória chegou a bater a marca dos 100 dólares por megabyte. Com a memória custando essa fortuna, é compreensível que a grande maioria dos PCs 386 e 486 viessem equipados com apenas 8 ou mesmo 4 MB de memória, sendo que o recomendável para rodar sistemas gráficos como o Windows 95, ou mesmo o XFree86 do Linux, seriam pelo menos 16.
Felizmente, nos últimos anos, devido ao barateamento na linha de montagem, os preços dos módulos de memória despencaram. A chave para esse barateamento foi a miniaturização dos
transistores.
Na memória RAM, cada transistor representa um bit de dados. Um módulo de memória com 64 MB é formado por cerca de 512 milhões de transistores. Conforme os fabricantes desenvolvem novas tecnologias, passam a ser capazes de produzir transistores cada vez menores. Com isso, é possível incluir mais transistores e, conseqüentemente, mais
memória em cada chip. Os primeiros chips de memória RAM tinham apenas 1 Kb (um Kbit e não um Kbyte, preste atenção no b minúsculo), enquanto atualmente a moda é produzir chips com 128 Mb (megabits). Juntando 8 chips, temos um pente de memória com 128 MB, juntando 16, temos um módulo de 256 MB e assim por diante. Chegamos assim aos 20 centavos de dólar
por megabyte.
O baixo preço atual, justifica o uso de 256 ou mesmo 512 MB de memória. Alguns usuários de aplicativos mais pesados já vão mais além, definindo 1024 MB como o ideal. A quantidade e a velocidade das memórias são mais importantes que a própria velocidade do processador, principalmente para quem costuma trabalhar com vários aplicativos
abertos ao mesmo tempo, ou trabalha com arquivos pesados, imagens, vídeo etc.
A equação é simples. Qualquer programa ou arquivo em uso precisa ser armazenado na memória. Então, o processador começa a usar a memória RAM, que é razoavelmente rápida. No
entanto, pode ser que ela não seja suficiente. Aí entra a questão: “O que você prefere, ver uma mensagem de “não há memória suficiente”, ou ver o aplicativo rodando, mesmo que lentamente?” Se você ficou com a segunda opção, agradeça ao engenheiro da Intel que trabalhou para incluir o recurso de memória virtual a partir do processador 386.
A memória virtual é só um quebra-galho. Serve para permitir que o processador simule mais memória RAM criando um arquivo no disco rígido e armazenando nele os dados que não couberam na memória. O problema é que o processador processa bilhões de instruções por segundo, enquanto um HD rápido tem tempos de acesso em torno de 10 milésimos de segundo.
Como o processador não pode fazer
COMO FUNCIONA
Os chips de memória RAM possuem uma estrutura extremamente simples. Para cada bit 1 ou 0 a ser armazenado, temos um minúsculo capacitor; quando o capacitor está carregado
eletricamente, temos um bit 1 e quando ele está descarregado, temos um bit 0. Para cada capacitor, temos um transistor, encarregado de ler o bit armazenado em seu interior e transmitilo ao controlador de memória. A memória RAM é volátil justamente devido ao capacitor perder sua carga muito rapidamente, depois de poucos milésimos de segundo.
A produção de chips de memória é similar à de processadores: também utilizamos um wafer de silício como base e um laser para marcá-lo. A diferença é que os chips de memória
são compostos basicamente de apenas uma estrutura básica: o conjunto capacitor/transistor, que é repetido alguns milhões de vezes, enquanto os processadores são formados por
estruturas muito mais complexas. Devido a essa simplicidade, um chip de memória é muito mais barato de se produzir do que um processador. Um módulo de 128 MB tem pouco mais de
1 bilhão de transistores, quase 40 vezes mais que um processador Pentium III Coppermine. Apesar disso, o módulo de memória é mais barato.
nada se não tiver dados para processar, precisa esperar até que o disco rígido possa lhe entregar o trabalho a ser feito. De nada adianta ter um processador muito rápido,
se por falta de memória RAM, ele é subutilizado devido ao uso de memória virtual, ficando limitado à performance do disco rígido.
Os chips de memória são frágeis placas de silício e precisam ser encapsulados em alguma estrutura mais resistente antes de serem transportados e encaixados na placa- mãe. Assim como temos vários tipos de encapsulamento diferentes para processadores (SEPP e PPGA por exemplo), temos vários formatos de módulos de memória. Inicialmente os chips são encapsulados em módulos DIP, que os
- Esquema padrão de acesso a dados
Para ler e gravar dados na memória, assim como controlar todo o trânsito de dados entre a memória e os demais componentes do micro, é usado mais um circuito, chamado controlador de memória, que faz parte do chipset localizado na placa mãe.
Para facilitar o acesso a dados, dividimos os módulos de memória em linhas e colunas. Para acessar um determinado transístor (seja para gravar ou ler dados), o controlador de
memória primeiro gera o valor RAS (Row Address Strobe), ou o número da linha da qual o transístor faz parte, sendo gerado em seguida o valor CAS (Collum Address Strobe), que corresponde à coluna.
protegem e facilitam a dissipação do calor gerado pelos chips. Estes, por sua vez, são soldados em placas de circuito, formando os módulos de memória. Dos diversos tipos
de memória, as mais utilizadas atualmente são:
Ao contrário dos módulos SIMM de 30 e 72 vias, os módulos DIMM possuem contatos em ambos os lados do módulo, o que justifica seu nome, “Double In Line Memory Module” ou “módulo de memória com duas linhas de contato”.Como os módulos DIMM trabalham com palavras binárias de 64 bits, um único módulo é suficiente para preencher um banco de memória em um micro Pentium ou superior, dispensando seu uso em pares. Caso você deseje instalar 64 MB de memória em um Pentium II, por exemplo, será preciso comprar apenas um único
módulo DIMM de 64 MB.
Os módulos DIMM de 168 vias são os únicos fabricados atualmente. Você dificilmente encontrará módulos de 72 vias, ou placas-mãe novas que os suportem à venda, apenas componentes usados. Veja na foto abaixo as diferenças de formato e tamanho entre os três módulos:
De cima para baixo: um módulo SIMM de 30 vias, um de 72 vias e um módulo DIMM
Um processador x86 pode trabalhar com qualquer quantidade de memória, a partir de um mínimo de 64 KB. Porém, é preciso que o barramento de dados seja suficiente. Uma quantidade qualquer de memória, que atenda às exigências do processador quanto à largura de barramento, é chamada de banco de memória.
No Pentium, cada banco de memória deve ser capaz de permitir o acesso de 64 bits de dados por vez, enquanto nos processadores 386 e 486, é necessário um barramento de 32 bits. Caso o módulo de memória possua um barramento de dados mais estreito que o necessário, será preciso combinar dois ou mais módulos para formar cada banco.
Como os módulos SIMM de 30 vias possuem um barramento de apenas 8 bits, são necessários 4 módulos para formar um banco de memória em um micro 386 ou 486. Se esses módulos antigos chegassem a ser utilizados em micros Pentium, seriam necessários 8 módulos para formar cada banco.
Os módulos SIMM de 72 vias já possuem um barramento de 32 bits, sendo um único módulo suficiente para completar um banco de memória em um 486 e dois módulos necessários para completar os 64 bits exigidos pelo Pentium.
Finalmente, os módulos DIMM possuem um barramento de 64 bits, sendo necessário apenas um módulo para formar um banco em micros equipados com processadores Pentium ou superiores. Dentro de um banco, todos os módulos são acessados ao mesmo tempo, como se fossem um só. Por isso, é necessário que todos os módulos sejam capazes de responder aos chamados do controlador de memória sincronizadamente, como uma orquestra. A mínima falta de sincronia entre os módulos irá causar instabilidade no sistema, que poderá levar a
travamentos. Por isso, é altamente recomendável que sejam utilizados sempre módulos idênticos dentro de um mesmo banco (mesma marca, mesma capacidade, mesmo tempo de acesso etc.), de preferência, comprados juntos.
- Memórias SDRAM
(Synchronous Dynamic RAM)
Memórias antigas, como as FPM e EDO são assíncronas, isso significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placamãe. Isso explica por que memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 (que trabalham com bus de 25, 30, 33 ou 40 MHz) funcionam sem problemas em placas
para processadores Pentium, que funcionam a 66 MHz. Na verdade, as memórias continuam trabalhando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais
altos. Assim, em vez de responder a cada dois ciclos da placa-mãe, por exemplo, elas podem passar a responder a cada três ou quatro ciclos, funcionando normalmente.
As memórias SDRAM por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempo de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da velocidade de barramento utilizada, os tempos de acesso poderão ser de 5-1-1-1. Observe que apenas a partir do segundo ciclo a memória é capaz de manter um acesso por ciclo, o primeiro acesso continua tão lento quanto em memórias EDO e FPM, consumindo cinco ciclos.
Como é preciso que a memória SDRAM a ser usada seja rápida o suficiente para acompanhar a placa-mãe, é possível encontrar versões com tempos de acesso entre 15 e 6 nanossegundos.
Para determinar a velocidade máxima de operação de um módulo de memória SDRAM, basta dividir 1000 pelo seu tempo de acesso: um módulo com tempo de acesso de 15 nanos poderia trabalhar a apenas 66 MHz, já que 1000/15 = 66. Outra com tempo de acesso de 12 nanos já poderia trabalhar a 75 ou até 83 MHz, já que 1000/12 = 83. Para confirmar a
validade desse cálculo, basta dividir 1 segundo por 83 milhões de ciclos da placamãe e teremos justamente 12 nanos.
Justamente o fato de trabalharem sincronizadas com os ciclos da placa-mãe torna as memórias SDRAM muito mais rápidas que suas antecessoras. Um módulo com tempo de acesso de 12 nanossegundos consegue ser cerca de 30% mais rápido que módulos de memórias EDO de60 nanos, a 66 MHz (5 + 1 + 1 + 1 = 8 ciclos por 4 acessos na memória SDRAM contra 5 + 2 + 2 + 2 = 11 ciclos por 4 acessos da memória EDO) e quase 50% mais rápido a 83 MHz (5 + 1 + 1 + 1 = 8 da memória SDRAM contra 6 + 3 + 3 + 3 = 15 da memória EDO). Caso fosse utilizado um barramento de 100 MHz (nesse caso, precisaríamos de memórias PC-100), as
memórias EDO se mostrariam quase 2,5 vezes mais lentas (5 + 1 + 1 + 1 = 8 contra 7 + 4 + 4 + 4 = 19).
Por não trabalharem sincronizadas com o clock da placa-mãe, as memórias FPM e EDO poderiam trabalhar com qualquer freqüência de barramento: 100, 133, 200 MHz, ou até mais, desde que os tempos de espera fossem ajustados corretamente. Porém, quanto mais alta a velocidade, maiores teriam que ser os tempos de espera e pior seria o desempenho das
memórias. Por isso, não se costuma utilizar memórias EDO ou FPM em frequências de barramento superiores a 75 MHz, apenas memórias SDRAM.
O padrão de memórias PC-100, desenvolvido pelo IBM, consiste numa série de especificações que visam a fabricação de memórias capazes de funcionar estavelmente em placas-mãe que operam a 100 MHz. Teoricamente, qualquer módulo de memória SDRAM com tempo de acesso abaixo de 10 nanos poderia funcionar a 100 MHz, pois 1000/10 = 100. O problema é que, apesar de alguns módulos de memórias SDRAM antigos (chamados de PC-66, por terem funcionamento garantido a apenas 66 MHz) oferecerem tempos de acesso de 10 nanos, eles muitas vezes possuem um tempo de latência muito alto, falhando quando obrigados a funcionar a 100 MHz. Apesar de inicialmente os fabricantes terem encontrado dificuldades para produzir as memórias PC-100, com a proliferação dos processadores que rodam com bus de 100 MHz em meados dos anos 90, como as versões de 350, 400, 450 e 500
MHz do Pentium II e os K6-2 de 300, 350, 400 e 450 MHz, as memórias PC-100 rapidamente tornaram-se um padrão.
Com a evolução das técnicas de fabricação, foi sendo possível produzir módulos de memória SDRAM com tempos de acesso cada vez mais baixos. Apesar do processo de evolução ser bastante lento se comparado ao de outros componentes, atualmente já é possível produzir memórias SDRAM capazes de funcionar acima de 133 MHz.
Essas novas memórias, chamadas PC-133, são utilizadas pelas versões de 133 MHz do Pentium III e do AMD Athlon, e justamente por permitirem um acesso a dados mais rápido, contribuem para o aumento da performance global do micro. Vale lembrar que memórias PC-133 funcionam normalmente em placas-mãe com bus de 66 ou 100 MHz, assim como as
memórias PC-100 trabalham normalmente a 66 MHz. Existe uma freqüência máxima, mas freqüências menores também são suportadas. Você pode inclusive misturar módulos DIMM de tempos diferentes na mesma placa-mãe, desde que nivele por baixo, ou seja, utilize uma freqüência de barramento compatível com o módulo mais lento.
Existem alguns casos de incompatibilidades entre algumas marcas ou modelos de módulos de memória e alguns modelos específicos de placas-mãe, assim como em algumas combinações de
módulos de marcas diferentes. Por isso, em algumas combinações, pode ser que o micro não funcione, mas bastará trocar os módulos de memória por outros de marca diferente. Existem também alguns casos de placas-mãe antigas que são incompatíveis com módulos de memória DIMM PC-100 ou PC-133 ou módulos de mais de 64 MB.
- Memórias DDR-SDRAM
(Double Data Rate SDRAM)
DDR vem de Double Data Rate, o que enfatiza a principal característica das memórias DDR: permitir duas transferências de dados por ciclo de clock, um esquema semelhante ao usado no AGP 2x. Enquanto num módulo de memória SDRAM PC-100 temos transferidos 64 bits por ciclo de clock, resultando em uma taxa de transferência de 800 MB/s, num módulo de DDR-SDRAM também de 100 MHz, teríamos duas transferências de 64 bits em cada ciclo, alcançando 1.6 GB/s de transferência, simplesmente o dobro.
Esse tipo de memória está sendo bastante utilizado atualmente em placas de vídeo 3D. Uma das primeiras foi a NVIDIA GeForce DDR.
O principal trunfo das memórias DDR é o preço, que é praticamente o mesmo de memórias SDRAM comuns. Na verdade, pela escassez, as SDRAMs comuns estão até mais caras.
Os módulos de memória DDR-SDRAM são parecidos com os módulos DIMM de memórias SDRAM tradicionais, apenas a posição da fenda é diferente, para evitar que um módulo DDR possa sem encaixado num slot DIMM comum.
- Como funcionam as memórias DDR
As memórias DDR têm a capacidade de transmitir dados duas vezes por ciclo, uma transferência no início do ciclo de clock e uma segunda no final do pulso. Um módulo DDR de 266 MHz por exemplo, não trabalha a 266 MHz, mas sim a apenas 133 MHz, entretanto, como são feitas duas transferências por ciclo, o desempenho é equivalente ao que seria alcançado por um módulo de 266 MHz.
O mais interessante é que um módulo DDR é essencialmente um módulo de memória SDRAM PC-100 ou PC-133 comum, com apenas uma ligeira modificação no circuito de acesso, como
então ele pode ser duas vezes mais rápido?
Os módulos de memórias DRAM e DDR são divididos logicamente em bancos. Dentro do módulo de memória, cada banco concentra uma certa parte dos endereços de memória disponíveis. Cada banco divide-se novamente em várias linhas que finalmente dividem-se em colunas. A combinação dos endereços de banco, linha e coluna, corresponde à localização dos dados a serem acessados.
Dentro de cada banco de memória, apenas uma linha pode permanecer ativa de cada vez, mas nada impede que seja feito mais de um acesso simultâneo, desde que a endereços diferentes.
Para isso, não é necessário mudar a estrutura do módulo, apenas realizar algumas mudanças no circuito de acesso dentro dos módulos e no controlador de memória da placa mãe. Atualmente, é comum memória DDR que permite quatro acessos por ciclo (DDR 400). Teoricamente seriam possíveis tecnologias ainda mais rápidas, porém, quanto maior a
quantidade de dados sendo transferidos por ciclo, maior o nível de ruído eletromagnético, e mais difícil é fazer tudo funcionar.
Possivelmente a única desvantagem das memórias DDR em relação às memórias SDRAM é o fato de os módulos serem incompatíveis. Ao comprar uma placa-mãe que suporte memórias DDR, você poderá usar somente memórias DDR e vice-versa. Terá que trocar seus módulos de memória e comprar apenas módulos DDR em upgrades futuros. É quase como um casamento...
Existem algumas placas-mãe híbridas, que trazem, por exemplo, dois soquetes para memórias SDRAM comuns e dois encaixes para memórias DDR, permitindo escolher qual tipo utilizar. Mas nunca as utilize em conjunto!
Atualmente, existem diversas especificações de memória DDR. As mais comuns são:
A especificação PC-xxxx refere-se à quantidade de MB/s que a memória é capaz de transferir por ciclo.